開發時,對於前端參數傳遞有不同的做法,特別是使用Spring MVC開發webd框架時,內建多種處理參數請求的方式,常見的有@PathVariable、@RequestParam 和 @RequestBody。一開始會搞不太懂什麼時機該用哪個,畢竟每種方法都能順利取得參數,為什麼要分那麼多種呢?其實,理解它們各自的用途後,會發現每種方式都有其最佳的應用場景。
前端(像是網頁、應用程式、API客戶端)向後端發送請求時,就會將參數放入請求當中。這些參數可透過URL路徑、查詢字串、請求體的方式傳遞給後端。
當後端處理完前端傳來的請求後,會將結果作為響應返回給前端,而響應內容通常會包含狀態碼、訊息、或資料數據(常見使用JSON格式)。
@PathVariable用於將URL的路徑變數,綁定於API的參數,適合用於RESTful當中表示唯一標識的資源。URL當中想要有可變資源的標識符,例如產品編號、任務項ID。
@GetMapping("/task/{id}")
public Task getTaskById(@PathVariable Long id) {
// 根據ID查詢任務
}
@RequstParam用於從URL查詢字串(多個)獲取變數,可用於簡單的資料過濾或查詢操作。
@GetMapping("/Search")
public List<Task> searchTasks(@RequestParam String memberId) {
// 根據會員ID查詢任務
}
@RequestBody用於將JSON格式的請求轉換為Java物件使用,適合用於複雜的資料處理,例如註冊。
要注意的是,通常會是使用POST方式處理。
@PostMapping("/members")
public Member createMember(@RequestBody Member member) {
// 根據JSON請求建立會員
}
選擇適合的傳參方式,能夠有效提升API的設計靈活與可讀性。